/**19/09
 * Tp final
 * Rotta Damián, Klikailo Héctor
 */
 
package Logica;

import Excepciones.YaExiste;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Proveedor {
    private String nombre;
    private String telefono; //Modificar tipo de dato en el diagrama.
    private boolean estado;
    private List<Insumo> insumos;

    //Constructores
    public Proveedor() {
        this.insumos=new ArrayList();
    }
    
    public Proveedor(String nombre, String telefono, List<Insumo> insumos) {
        this.nombre = nombre;
        this.telefono = telefono;
        this.estado=true;
        this.insumos=insumos;
    }
//Getter y setter
    public String getNombre() {
        return nombre;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
    //Métodos
    public void bajaProveedor(){
        this.estado=false;        
    }

    public boolean isEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public List<Insumo> getInsumos() {
        return insumos;
    }

    public void setInsumos(List<Insumo> insumos) {
        this.insumos = insumos;
    }
    public Quimico agregarQuimico(String nombre, String tipo, String nroInventario) throws YaExiste {
        Quimico unQuimico;      
        if(!insumos.contains(nombre)&&(!insumos.contains(tipo))&&(this.nombre.equals(this.getNombre()))){
                unQuimico = new Quimico(tipo,nombre,this,nroInventario);
                this.insumos.add(unQuimico);
             }
                else
                throw new YaExiste("El Quimico ",nombre,"ya existe");
           return unQuimico; 
     }
   public boolean estaEnLaLista(Insumo aBuscar){
        boolean retorno=false;
        Iterator it = this.insumos.listIterator();
        while((it.hasNext()) && (!retorno)){
            Insumo unInsumo = (Insumo) it.next();
            if (unInsumo.getNombre().equals(aBuscar.getNombre()))
                retorno=true;
       }
       return retorno;
    }

    void altaEquipamiento(String nombre, String tipo, boolean obligatorio, Proveedor unProveedor, String nroInventario) {
        for(Insumo unInsumo:insumos){
            if(tipo.equals(unInsumo.getNombre())){
                Equipamiento unEquipamiento = new Equipamiento(nombre, obligatorio, unProveedor,nroInventario);
            }
            //To change body of generated methods, choose Tools | Templates.
    }
}

}